Deductive Multi-valued Model Checking
Ajay Mallya
University of Texas at Dallas
Model
checking is widely used in the verification of computer systems.
Classical model checking methods are based on the boolean
interpretation of temporal logic formulas over Kripke structures.
However, this method does not scale well and model checking of large
systems is often intractable, due to the problem of state space
explosion. Multi-valued logics go beyond the boolean interpretation of
truth, by offering a multitude of truth values that can precisely
encode contextual information, and at the same time provide reasonable
generalizations of the operators of boolean logic.
In this dissertation, we develop the theory of multi-valued model checking, which is the multi-valued
interpretation of formulas of temporal logic over multi-valued structures. The mechanism of Horn logic
is used to specify the denotational semantics of temporal formulas over multi-valued Kripke structures, thereby
yielding a systematic and efficient model checking procedure.
Multi-valued logics are a canonical form of
the lattice-based theory of abstract interpretation. A complete abstraction procedure for Kripke structures is
developed, using Belnap's four-valued logic as the abstract domain. For an infinite state system, that satisfies
a given $\mu$-calculus formula, a finite abstraction is produced, that also satisfies the same formula. The
abstraction method is also extended to game theoretic generalizations of Kripke structures, to yield similar
results.
Finally, the theory of co-Logic programming is used to develop model checking techniques for
the verification of liveness properties using coinductive reachability analysis. Another application of co-Logic
programming -- reasoning about sequences of actions in real-time is also presented.
Logic Programming with Sets, Multisets, and Aggregates
Islam Elkabani
New Mexico State University
Logic Programming has began in the early 1970's as a direct outgrowth
of earlier work in automatic theorem proving and artificial
intelligence. The ideal of logic programming is purely declarative programming.
This means that it brings to the programmer the benefit of only
having to specify the logic component of an algorithm and leaving
the control to the logic programming system.
Logic programming is based on deductive reasoning and this means that deriving conclusions based solely on what one already knows. This sort of reasoning is monotonic: as the set of beliefs grows, so does the set of conclusions that can be
drawn from those beliefs. In recent years we witnessed an alternative logical systems, called non-monotonic logics,
which allow new beliefs to retract existing conclusions. In
particular, in the last few years a novel programming paradigm
based on non-monotonic logics, has arisen, called Answer Sets
Programming (ASP). ASP offers novel and declarative
solutions in well-defined application areas, such as intelligent
agents, planning, and diagnosis.
Nevertheless, there are simple properties, commonly encountered in
real-world applications, that cannot be conveniently handled within the
current framework of ASP - such as properties dealing with
arithmetic and aggregation. In particular, aggregates and other
forms of set and multiset constructions have been shown to be
essential to reduce the complexity of software development and to
improve the declarative level of the programming framework.
In this dissertation an extension of ASP which supports a semantically
well-founded, flexible, and efficient implementation of
aggregates has been developed. Also a generic framework which
provides a simple and elegant treatment of extensions of ASP
w.r.t. generic constraint domains has been offered and an
instantiation of this framework to the case of constraint theory
for aggregates is developed. Finally, a new logic programming
language that supports both extensional and intensional multiset
constraints is presented. The broader impact of this dissertation is to
efficiently extend ASP with aggregates and multiset constraints,
leading to a more compact ASP programs, allow as many problems as
possible to be described in an intuitive and more declarative
manner in ASP and reduce the level of complexity in solving ASP
programs.